package responsibility.dependenceInversiion.demo_01;

public class Demo01 {

    public static void main(String[] args) {
        Person person = new Person();
        Email email = new Email();
        person.receive(email);
    }
}

// 完成 Person 接收消息的功能

// 方式1
// 问题: 如果获取的对象是微信,短信等新的消息类,则 receive 方法需要重载
// 解决思路: 不要依赖于细节,而是应该依赖于抽象
// 抽象出一个公共的接口, 消息类实现此接口即可, Person 中也只依赖此接口
class Person {
    public void receive(Email email) {
        String info = email.getInfo();
        System.out.println(info);
    }
}

class Email {
    public String getInfo() {
        return "hello, alex";
    }
}
